(module binary
  "\00\61\73\6d\01\00\00\00\01\88\80\80\80\00\02\60"
  "\00\00\60\00\01\7f\03\90\80\80\80\00\0f\00\00\01"
  "\01\01\01\01\01\01\01\01\01\01\01\01\07\be\81\80"
  "\80\00\0e\05\65\6d\70\74\79\00\01\08\73\69\6e\67"
  "\75\6c\61\72\00\02\05\6d\75\6c\74\69\00\03\06\6e"
  "\65\73\74\65\64\00\04\04\64\65\65\70\00\05\10\61"
  "\73\2d\75\6e\61\72\79\2d\6f\70\65\72\61\6e\64\00"
  "\06\11\61\73\2d\62\69\6e\61\72\79\2d\6f\70\65\72"
  "\61\6e\64\00\07\0f\61\73\2d\74\65\73\74\2d\6f\70"
  "\65\72\61\6e\64\00\08\12\61\73\2d\63\6f\6d\70\61"
  "\72\65\2d\6f\70\65\72\61\6e\64\00\09\0a\62\72\65"
  "\61\6b\2d\62\61\72\65\00\0a\0b\62\72\65\61\6b\2d"
  "\76\61\6c\75\65\00\0b\0e\62\72\65\61\6b\2d\72\65"
  "\70\65\61\74\65\64\00\0c\0b\62\72\65\61\6b\2d\69"
  "\6e\6e\65\72\00\0d\07\65\66\66\65\63\74\73\00\0e"
  "\0a\99\84\80\80\00\0f\82\80\80\80\00\00\0b\88\80"
  "\80\80\00\00\02\40\0b\02\40\0b\0b\8b\80\80\80\00"
  "\00\02\40\01\0b\02\7f\41\07\0b\0b\98\80\80\80\00"
  "\00\02\40\10\00\10\00\10\00\10\00\0b\02\7f\10\00"
  "\10\00\10\00\41\08\0b\0b\95\80\80\80\00\00\02\7f"
  "\02\40\10\00\02\40\0b\01\0b\02\7f\10\00\41\09\0b"
  "\0b\0b\f9\80\80\80\00\00\02\7f\02\7f\02\7f\02\7f"
  "\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f"
  "\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f"
  "\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f"
  "\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f\02\7f"
  "\02\7f\02\7f\10\00\41\96\01\0b\0b\0b\0b\0b\0b\0b"
  "\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
  "\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
  "\8a\80\80\80\00\00\02\7f\10\00\41\0d\0b\68\0b\91"
  "\80\80\80\00\00\02\7f\10\00\41\03\0b\02\7f\10\00"
  "\41\04\0b\6c\0b\8a\80\80\80\00\00\02\7f\10\00\41"
  "\0d\0b\45\0b\97\80\80\80\00\00\02\7d\10\00\43\00"
  "\00\40\40\0b\02\7d\10\00\43\00\00\40\40\0b\5e\0b"
  "\a6\80\80\80\00\00\02\40\0c\00\00\0b\02\40\41\01"
  "\0d\00\00\0b\02\40\41\00\0e\00\00\00\0b\02\40\41"
  "\01\0e\02\00\00\00\00\0b\41\13\0b\8b\80\80\80\00"
  "\00\02\7f\41\12\0c\00\41\13\0b\0b\b1\80\80\80\00"
  "\00\02\7f\41\12\0c\00\41\13\0c\00\41\14\41\00\0d"
  "\00\1a\41\14\41\01\0d\00\1a\41\15\0c\00\41\16\41"
  "\04\0e\00\00\41\17\41\01\0e\02\00\00\00\41\15\0b"
  "\0b\c5\80\80\80\00\01\01\7f\41\00\21\00\20\00\02"
  "\7f\02\7f\41\01\0c\01\0b\0b\6a\21\00\20\00\02\7f"
  "\02\40\0c\00\0b\41\02\0b\6a\21\00\20\00\02\7f\41"
  "\04\0c\00\68\0b\6a\21\00\20\00\02\7f\02\7f\41\08"
  "\0c\01\0b\68\0b\6a\21\00\20\00\0b\af\80\80\80\00"
  "\01\01\7f\02\40\41\01\21\00\20\00\41\03\6c\21\00"
  "\20\00\41\05\6b\21\00\20\00\41\07\6c\21\00\0c\00"
  "\20\00\41\e4\00\6c\21\00\0b\20\00\41\72\46\0b"
)
(assert_return (invoke "empty"))
(assert_return (invoke "singular") (i32.const 7))
(assert_return (invoke "multi") (i32.const 8))
(assert_return (invoke "nested") (i32.const 9))
(assert_return (invoke "deep") (i32.const 150))
(assert_return (invoke "as-unary-operand") (i32.const 0))
(assert_return (invoke "as-binary-operand") (i32.const 12))
(assert_return (invoke "as-test-operand") (i32.const 0))
(assert_return (invoke "as-compare-operand") (i32.const 0))
(assert_return (invoke "break-bare") (i32.const 19))
(assert_return (invoke "break-value") (i32.const 18))
(assert_return (invoke "break-repeated") (i32.const 18))
(assert_return (invoke "break-inner") (i32.const 15))
(assert_return (invoke "effects") (i32.const 1))
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\02\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7e\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\02\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7d\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\02\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7c\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\02\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\8d\80\80\80\00"
    "\01\87\80\80\80\00\00\02\40\41\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\02\7f\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8c\80\80\80"
    "\00\01\86\80\80\80\00\00\02\7f\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\90\80\80\80"
    "\00\01\8a\80\80\80\00\00\02\7f\43\00\00\00\00\0b"
    "\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8f\80\80\80"
    "\00\01\89\80\80\80\00\00\02\7e\00\00\00\1b\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8d\80\80\80"
    "\00\01\87\80\80\80\00\00\02\7f\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8f\80\80\80"
    "\00\01\89\80\80\80\00\00\02\7f\0c\00\41\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\90\80\80\80"
    "\00\01\8a\80\80\80\00\00\02\7f\01\0c\00\41\01\0b"
    "\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\91\80\80\80"
    "\00\01\8b\80\80\80\00\00\02\7f\42\01\0c\00\41\01"
    "\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\92\80\80\80"
    "\00\01\8c\80\80\80\00\00\02\7f\01\0c\00\41\01\0c"
    "\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\93\80\80\80"
    "\00\01\8d\80\80\80\00\00\02\7f\42\01\0c\00\41\01"
    "\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\94\80\80\80\00"
    "\01\8e\80\80\80\00\00\02\7f\02\7f\41\01\0c\01\0b"
    "\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\94\80\80\80"
    "\00\01\8e\80\80\80\00\00\02\7f\02\40\0c\01\0b\41"
    "\01\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\95\80\80\80"
    "\00\01\8f\80\80\80\00\00\02\7f\02\7f\01\0c\01\0b"
    "\41\01\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\96\80\80\80"
    "\00\01\90\80\80\80\00\00\02\7f\02\7f\42\01\0c\01"
    "\0b\41\01\0c\00\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8e\80\80\80"
    "\00\01\88\80\80\80\00\00\02\40\0c\00\0b\68\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8f\80\80\80"
    "\00\01\89\80\80\80\00\00\02\40\01\0c\00\0b\7a\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\90\80\80\80"
    "\00\01\8a\80\80\80\00\00\02\40\42\09\0c\00\0b\7a"
    "\0b"
  )
  "type mismatch"
)
(assert_malformed (module quote "(func block end $l)") "mismatching label")
(assert_malformed (module quote "(func block $a end $l)") "mismatching label")
